﻿namespace Attacher
{
	internal interface IAutoStartService
	{
		/// <summary>
		/// Sets the autostart value for the assembly.
		/// </summary>
		/// <param name="keyName">Registry Key Name</param>
		/// <param name="assemblyLocation">Assembly location (e.g. Assembly.GetExecutingAssembly().Location)</param>
		void SetAutoStart(string keyName, string assemblyLocation);

		/// <summary>
		/// Returns whether auto start is enabled.
		/// </summary>
		/// <param name="keyName">Registry Key Name</param>
		/// <param name="assemblyLocation">Assembly location (e.g. Assembly.GetExecutingAssembly().Location)</param>
		/// <returns><c>true</c> if the autostart has been already set, <c>false</c> otherwise.</returns>
		bool IsAutoStartEnabled(string keyName, string assemblyLocation);

		/// <summary>
		/// Unsets the autostart value for the assembly.
		/// </summary>
		/// <param name="keyName">Registry Key Name</param>
		void UnSetAutoStart(string keyName);
	}
}